+++ printf
+++ fprintf
+++ sprintf

Include: %A30stdio.h

Prototype:  %A47int printf(char *format,...);%V

Remarks:
Prints to stdout. format consists of ordinary and formatting characters.
Formatting characters are preceded with a % character. The format string is
read right to left and  arguments are used as required. If there are more
arguments than required, they are ignored. If there are less arguments, the
the next values on the stack are used -- this means the output is undefined.
The following is the generic format specification:

%[%Tformat_flag%T][%Tformat_width%T][.%Tformat_precision%T][l]%Tformat_type%T

The simple formatting statements typically only include the type, e.g., %s
and %d.

l is used as a prefix to d, o, u, x, and X to specify a long

+++ format_flag

flag - justification, leading zeros, blanks.

Flag        Description
  -         Left-justify
  +         Prefix output value with a sign
blank(' ')  Prefix output with blanks
  #         For o, x or X types: prefix with 0, 0x, 0X
	    For f, e or E types: forces decimal point
	    For g or G types: forces decimal, prevents truncation
	    Ignored for c, d, u, or s


+++ format_width

Width is a non-negative integer that defines the minimum number of characters
to print. It the number of characters is less than the width then the field
is padded as per the flag (default: right-justify and blank pad). NOTE: width
never causes truncation: if the number of characters is greater than width
all the characters are printed (use format_precision for truncation). To
specify a "variable" width use an asterisk and include an argument in the
argument-list, e.g.,

printf("%*d",width,value);

+++ format_precision

Precision is a non-negative integer preceded by a period (.) that defines the
number of characters to print.  Precision can cause truncation.  To specify a
"variable" width use an asterisk and include an argument in the argument-list.
The actual interpretation of precision depends on the type:

 d, u, o, x or X  Specifies the minimum number of digits to print. If there
 are fewer characters than the precision, the value is left zero-padded

 f e E Specifies the number of digits to be printed after the decimal point.
 The last digit is rounded. Default is 6. If precision is 0 or just a period
 then no decimal point is printed.

 g G Specifies the maximum number of significant digits

 s Specifies the maximum number of characters to print. Characters are
 printed until the precision is reached or a null character is found.

+++ format_type

Character   Output
   d        Signed decimal integer
   u        Unsigned decimal integer
   o        Unsigned octal integer
   x        Unsigned hexadecimal integer using abcdef
   X        Unsigned hexadecimal integer using ABCDEF
   f        Signed floating point value: [-]dddd.dddd (number of digits
	    depends on width and precision
   e        Signed floating point value: [-]dddde[ñ]dddd (number of digits
	    depends on width and precision
   E        Signed floating point value: [-]ddddE[ñ]dddd (number of digits
	    depends on width and precision
   g        Signed floating point value. Using most compact e or f output
   G        Signed floating point value. Using most compact E or f output
   c        Character
   s        String. Prints up to precision or null character

